The described aspects relate to buffering of content to be presented on a display, and more particularly, to an apparatus, method, and computer program product for selectively double buffering portions of the displayable content.
Many computer devices, such as a wireless communication device, include a display screen operable to present a display frame, or visible image on the screen. Since many computer devices redraw the visible display frame, it can be difficult to make changes to the display frame without the display screen showing the results before the completion of the graphics operation. This results in undesirable artifacts, such as flickering, tearing and shearing. Overcoming such undesirable artifacts can be achieved by using display buffers, also known as double or secondary buffers. The display screen has a display buffer into which the display frame is rendered prior to being copied to the display memory, which directly affects what is presented on the screen. The secondary or double buffer may be utilized for the construction of new display frames. Any rendering of displayable content into the secondary buffer, referred to as double buffering, can not affect the display screen. When the construction of a new display frame in the secondary buffer is complete, then the newly constructed display frame can be copied, or “blitted,” into the display memory using an efficient buffer copy routine. Thus, through the use of a buffer, the presence of artifacts in the visible display frame presented on the display screen can be reduced or eliminated.
In some systems, the entire display screen is double buffered, i.e. all the components are located in one buffer. In other systems, element-by-element double buffering occurs, in which each individual displayable element is first rendered to its own private buffer before that buffer is copied to the screen's double buffer.
In computer devices having limited resources, however, the advantage of improved quality of the visible display frame provided by double buffering can be weighed against the cost in terms of memory requirement and processor usage.
Thus, improved apparatus and methods for buffering displayable content are desired.